package com.condominio.facade;

import java.util.List;

import com.condominio.control.ContaControl;
import com.condominio.control.PessoaControl;
import com.condominio.control.RecadoControl;
import com.condominio.model.Conta;
import com.condominio.model.Pessoa;
import com.condominio.model.Recado;

public class Facade {

	private static Facade facade;
	private ContaControl contaControl=new ContaControl();
	private PessoaControl pessoaControl=new PessoaControl();
	private RecadoControl recadoControl=new RecadoControl();
	
	private Facade(){}
	
	public static Facade getInstance(){
		if(facade==null){
			facade = new Facade();
		}
		return facade;
	}
	
	public List<Pessoa> findAllPessoa(){
		return pessoaControl.findAllPessoa();
	}

	public Pessoa login(Pessoa p) {
		return pessoaControl.login(p);
			
	}

	public boolean cadastrarPessoa(Pessoa p) {
		return pessoaControl.cadastrarPessoa(p);
	}

	public Pessoa findPessoa(Pessoa p) {
		return pessoaControl.findPessoaByLoginAndSenha(p);
	}
	
	public Pessoa findPessoaByAP(Pessoa p) {
		return pessoaControl.findPessoaByAP(p);
	}

	public boolean atualizarPessoa(Pessoa p) {
		return pessoaControl.atualizarPessoa(p);
	}

	public boolean excluirPessoa(Pessoa p) {
		return pessoaControl.excluirPessoa(p);
	}
	
	public boolean cadastrarConta(Conta p) {
		return contaControl.cadastrarConta(p);
	}

	public Conta findConta(Conta p) {
		return contaControl.findConta(p);
	}

	public boolean atualizarConta(Conta p) {
		return contaControl.atualizarConta(p);		
	}

	public boolean excluirConta(Conta p) {
		return contaControl.excluirConta(p);
	}
	public List<Conta> findAllConta() {
		return contaControl.findAllConta();
	}
	public List<Conta> findAllContaByPessoa(Pessoa p) {
		return contaControl.findAllContaByPessoa(p);
	}
	public List<Conta> findAllContaByPessoaAndStatus(Pessoa p,boolean status) {
		return contaControl.findAllContaByPessoaAndStatus(p,status);
	}

	public List<Conta> findAllContaByTituloAndData(Conta c) {
		return contaControl.findAllContaByTituloAndData(c);
	
	}
	public Recado findRecado(Recado r) {
		return recadoControl.findRecadoById(r);
	}

	public boolean cadastrarRecado(Recado r) {
		return recadoControl.cadastrarRecado(r);
	}

	public List<Recado> findAllRecadoByDestinatarioAp(Pessoa p) {
		return recadoControl.findAllRecadoByDestinatarioAp(p);
	}
	public List<Recado> findAllRecadoByNome(Pessoa p) {
		return recadoControl.findAllRecadoByNome(p);
	}

	public List<Recado> findAllRecado() {
		return recadoControl.findAllRecado();
	}

	

	/* public boolean excluirRecado(Pessoa p) {
		return recadoControl.excluirRecado(p);
	}*/

}
